/*******************************************************************************
*  file    : transform_dif.hpp
*  created : 23.06.2014
*  author  : Slyshyk Oleksiy (alexSlyshyk@gmail.com)
*******************************************************************************/

#ifndef TRANSFORM_DIF_HPP
#define TRANSFORM_DIF_HPP

#include <QObject>
#include <interfaces.hpp>
#include <QScopedPointer>
#include <transformparamsprivate.hpp>

class TransformDif: public QObject, public TransformNamedData
{
    Q_OBJECT
    Q_PLUGIN_METADATA(IID "tmx.com.ua.dsp.lab.TransformNamedData" FILE "transform_dif_heuristics.json")
    Q_INTERFACES(TransformNamedData)
public:
    TransformDif(QObject* parent = 0);
    virtual QString    name() const;
    virtual NamedData* transform( const NamedData* data, const QVariant& params);
    virtual QStringList patternList( ) const;
private:
    void transform(const std::vector<std::complex<double> > &sample, const NamedData *data, NamedData *res,
                     plugin_utils::TransformParamsPrivate *data_);
};

#endif // TRANSFORM_DIF_HPP
